<?php
	class Grille {
		var $gril= array(array());
		var $completed;
		
		
		
		function __construct() {
			
			//$this->initialiserGrille($this->gril);
			for($i = 0; $i<9; $i++) {
				for($j = 0; $j<3; $j++) {
					$this->gril[$i][$j] =0;
				}
			}
			/*foreach ($this->gril as $v1) {
				echo "\n";
				foreach ($v1 as $v2) {
					echo "$v2";
				}
			}
			*/
			
			
			$choixUnDeux = array("2","2","2","2","2","2","1","1","1");
			for($i = 0; $i < 9; $i++) {
				$keyDest = rand(1,8);
			 	$valInter = $choixUnDeux[$i];
			 	$choixUnDeux[$i] = $choixUnDeux[$keyDest];
			 	$choixUnDeux[$keyDest] = $valInter;
			 	
			 } 
			$restant = 15;
			$bouleAJouer =array("5","5","5");
			$nombres = array();
			for($j = 0; $j< 9 ; $j++) {
				if($choixUnDeux[$j] == 2) {
					$val = rand(($j)*10 +1,($j)*10 +9);
					array_push($nombres,$val);
					$val2 = rand(($j)*10 +1, ($j)*10 + 9);
					while($val2 == $val) {
						$val2 = rand(($j)*10 +1, ($j)*10 + 9);
					}
					array_push($nombres,$val2);
				}
				else {
					array_push($nombres,rand(($j)*10 +1,($j)*10 +9));
				}
				
			}
			
			/*for($j=0; $j<count($nombres); $j++) {
				echo('   '.$nombres[$j]);
			}*/
			
			$indice = 0;
			for($i = 0; $i<9; $i++) {
				$tr = $choixUnDeux[$i];
				$bool = false;
				while($tr>0) {
					//while($bool==false) {
						$inter = rand(0,2);
						$bool = $this->genererLeResultatAPartirDeLaProba($restant, $bouleAJouer[$inter]) && $this->gril[$i][$inter] == 0;
						if($bool == true) {
							$tr--;
							//echo "ok";
							$this->gril[$i][$inter] = $nombres[0];
							$restant--;
							$bouleAJouer[$inter]--;
							$nombres = array_slice($nombres, 1, count($nombres));
						//}
					}
				}		
			}
			echo "<table>";
			foreach ($this->gril as $v1) {
				echo "<tr>";
				echo "\n";
				foreach ($v1 as $v2) {
					echo "<td>";
					if($v2 ==0) {
						echo "  ";
					}else {
						echo "$v2";
					}
					echo "</td>";
				}
				echo "</tr>";
			}
			echo "</table>";
			/*for($i = 0; $i<9; $i++) {
					$vr = $choixUnDeux[$i];
					if($vr ==2) {
						$bool = $this->genererLeResultatAPartirDeLaProba($restant, $bouleAJouer[0]);
						if($bool == true && $gril[$i][0] ==0) {
							$grille[$i][0] = $nombres[0];
						}
						else {
							$bool = $this->genererLeResultatAPartirDeLaProba($restant, $bouleAJouer[1]);
							if($bool == true && $grille[$i][0] ==0) {
								$grille[$i][1] = $nombres[0];
							}
							else {
								$grille[$i][2] = $nombres[0];
							}
						}
					
					}
					else {
						
					}
			}*/
			//echo(count($nombres));
			/*for($j=0; $j<count($nombres); $j++) {
				echo('   '.$nombres[$j]);
			}
			*/
			
			 
		}
		
		
		function getGrille() {
			echo  $this->gril;
		}
		
		function setGrille($grille) {
			$this->gril = $grille;
		}
		
		function genererLeResultatAPartirDeLaProba($restant, $bouleAJouer) {
			$result = false;
			$essai = array();
			for($i = 0; $i<$restant; $i++) {
				array_push($essai, false);
			}
			for($i = 0; $i<$bouleAJouer; $i++) {
				$essai[$i] = true;
			}
			$v = rand(0,$restant-1);
			$result = $essai[$v];
			return $result;
		}
		
		function initialiserGrille($grille){
			for($i = 0; $i<9; $i++) {
				for($j = 0; $j<3; $j++) {
					$grille[$i][$j] =0;
				}
			}
		}
		
		/*function inscrireDansLaGrilleLeNombre($grille ,$bool, $i, $nombre) {
			if($bool == true) {
				$grille[i][0] = $nombre;
			}
			else {
				$bool
			}
		}*/
	
	}
	
		$z = new Grille();
	
?>